// 接口基础URL（开发C提供的后端地址）
const baseUrl = "https://api.xxx.com"; // 替换为实际后端URL

/**
 * 封装wx.request
 * @param {Object} options - 请求参数（url, method, data, header等）
 * @returns {Promise} - 返回Promise，便于async/await调用
 */
function request(options) {
  // 1. 处理请求参数
  const url = baseUrl + options.url;
  const token = wx.getStorageSync('jwtToken');
  const method = options.method || "GET";
  const header = {
    "content-type": "application/json", // POST请求需设为json
    
    "token": wx.getStorageSync("token")  // 从本地缓存获取用户token（登录后存储）
  };

  // 2. 返回Promise
  return new Promise((resolve, reject) => {
    wx.request({
      // 基础配置（默认 GET 方法）
      method: options.method || 'GET',
      url: options.url,
      data: options.data || {},
      header: header,
      // 成功回调
      success(res) {
        // 处理 HTTP 状态码（401 通常是 Token 过期）
        if (res.statusCode === 401) {
          wx.removeStorageSync('jwtToken'); // 清除无效 Token
          wx.showToast({ title: '登录已过期', icon: 'none' });
          wx.redirectTo({ url: '/pages/login/login' }); // 跳登录页
          reject('登录过期');
          return;
        }
        resolve(res.data); // 直接返回业务数据
      },
      // 失败回调（网络错误、跨域未解决等）
      fail(err) {
        wx.showToast({ title: '请求失败', icon: 'none' });
        reject(err);
      }
    });
  });
}

// 暴露get和post方法，简化调用
module.exports = {
  get: (url, data) => request({ url, method: "GET", data }),
  post: (url, data) => request({ url, method: "POST", data })
};

